# 闭包：在一个外函数中定义了一个内函数，内函数里运用了外函数的临时变量,并且外函数的返回值是内函数的引用（内函数的函数名），这样就构成了一个闭包


# 利用闭包返回一个计数器函数，每次调用它返回递增整数

def createCounter():
    x = 0

    def counter():
        nonlocal x
        x = x + 1
        return x
    return counter


f = createCounter()
print(f(), f(), f(), f())
